package com.foreknow.demo6;

/**
 * 抽象类（abstract class）:如果一个类中有一个或多个抽象方法，那么这个类就要声明为抽象类
 * 1、抽象类中的抽象方法只有方法的声明没有实现 public abstract void login(String name);
 * 2、子类负责实现抽象类中的抽象方法
 * 3、抽象类中可以写抽象方法也可以写非抽象方法，可以写变量也可以写常量(实际应用中包含都是抽象方法)
 * 4、抽象类是不能被实例化的(不能new)
 * 5、抽象方法不能为static
 */
public abstract class Person {
    /**
     * 登录
     *
     * @param name     用户名
     * @param password 注册
     * @return
     */
    public abstract boolean login(String name, String password);

    /**
     * 注册
     *
     * @param name
     * @param password
     * @return
     */
    public abstract boolean register(String name, String password);

    /**
     * 根据Id查询某一个Person信息
     *
     * @param id
     * @return
     */
    public abstract Person getPersonById(int id);

    /**
     * 查询所有用户的信息
     *
     * @return
     */
    public abstract Person[] getPersonAll();

    /**
     * 根据id删除某一个person的信息
     *
     * @param id
     * @return
     */
    public abstract boolean deletePersonById(int id);


}
